/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package modelo;

import controlador.IEmpleadoController;
import java.util.*;
import modelo.persistencia.IEmpleadoDAO;
import modelo.persistencia.EmpleadoDAO;
/**
 *
 * @author LEONIC
 */
public class EmpleadoModel implements IEmpleadoModel{

    private IEmpleadoController controller;

    public IEmpleadoController getController() {
        return controller;
    }

    public void setController(IEmpleadoController controller) {
        this.controller = controller;
    }

    public void eliminarEmpleado(IEmpleado empleado) {
        IEmpleadoDAO dao = obtenerImplementacionEmpleadoDAO();
        dao.delete(empleado);
        fireModelChanged();
    }

    public IEmpleado obtenerEmpleado(String dni) {
        IEmpleadoDAO dao = obtenerImplementacionEmpleadoDAO();
        return dao.read(dni);
    }

    public void actualizarEmpleado(IEmpleado empleado) {
        IEmpleadoDAO dao = obtenerImplementacionEmpleadoDAO();
        dao.update(empleado);
        fireModelChanged();

    }

    public List<IEmpleado> obtenerEmpleado() {
        IEmpleadoDAO dao = obtenerImplementacionEmpleadoDAO();
        return dao.list();
    }

    private IEmpleadoDAO obtenerImplementacionEmpleadoDAO() {
        //return new ContactoDAOFile();
        return new EmpleadoDAO();
    }

    protected void fireModelChanged() {
        getController().fireDataModelChanged();
    }
}
